package model

import (
	"gorm.io/gorm"
	"time"
)

type User struct {
	Id                uint64         `gorm:"column:id;type:int UNSIGNED;primaryKey;not null;" json:"id"`
	Mobile            string         `gorm:"column:mobile;type:char(11);comment:手机号;not null;" json:"mobile"`                           // 手机号
	Name              string         `gorm:"column:name;type:varchar(30);comment:姓名;not null;" json:"name"`                             // 姓名
	IdCard            string         `gorm:"column:id_card;type:char(18);comment:证件号码;not null;" json:"id_card"`                        // 证件号码
	CardStatus        string         `gorm:"column:card_status;type:varchar(5);comment:实名状态;not null;default:未实名;" json:"card_status"`  // 实名状态
	VideoName         string         `gorm:"column:video_name;type:varchar(30);comment:用户名;not null;" json:"video_name"`                // 用户名
	VideoNum          string         `gorm:"column:video_num;type:varchar(20);comment:编号;not null;" json:"video_num"`                   // 编号
	Image             uint64         `gorm:"column:image;type:int UNSIGNED;comment:头像;not null;default:1;" json:"image"`                // 头像
	Sex               string         `gorm:"column:sex;type:varchar(5);comment:性别;not null;" json:"sex"`                                // 性别
	Age               uint64         `gorm:"column:age;type:int;comment:年龄;not null;" json:"age"`                                       // 年龄
	Institution       string         `gorm:"column:institution;type:varchar(10);comment:认证机构;not null;" json:"institution"`             // 认证机构
	OrganizationType  string         `gorm:"column:organization_type;type:varchar(20);comment:机构类型;not null;" json:"organization_type"` // 机构类型
	AttentionQuantity uint64         `gorm:"column:attention_quantity;type:int;comment:关注量;not null;" json:"attention_quantity"`        // 关注量
	NumberOfFans      uint64         `gorm:"column:number_of_fans;type:int;comment:粉丝量;not null;" json:"number_of_fans"`                // 粉丝量
	LikeCount         uint64         `gorm:"column:like_count;type:int;comment:点赞量;not null;" json:"like_count"`                        // 点赞量
	CreatedAt         time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt         time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt         gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}

func (u *User) TableName() string {
	return "user"
}
